<?php
include_once ("../dao/conexao_class.php");


class EquipeDAO {

    private $insert = "INSERT INTO equipe(oco_id,fun_id,equipe_ativo) values(?,?,?);";
//    private $update = "UPDATE departamento SET dep_descricao = ? WHERE dep_id = ?;";
//    private $delete = "DELETE FROM departamento WHERE dep_id = ?;";
//    private $select = "SELECT * FROM departamento;";
    private $select_equipe = "SELECT DISTINCT equipe.OCO_ID
	     FROM funcionario, equipe, ocorrencia WHERE funcionario.FUN_ID = equipe.FUN_ID AND equipe.OCO_ID = ocorrencia.OCO_ID 
	     AND EQUIPE_ATIVO != 0 AND funcionario.FUN_ID = ?;";
    
    private $count_funcionarios = "SELECT count(*) FROM equipe WHERE equipe.OCO_ID = ?;";
    
    private $remove_funcionario = "DELETE FROM equipe WHERE oco_id = ? AND fun_id = ?;";
    
    private $finalizar = "UPDATE equipe SET equipe_ativo = 0 where oco_id = ?";
    
    function insert($objEquipe) {
        //conectando ao banco
        $objConn = new Conexao();
        $conn = $objConn->conecta();
//        var_dump($conn);
        //criando o preparedStatment
        if ($stm = $conn->prepare($this->insert)) {
            
            
            $stm->bind_param("iis",$objEquipe->getOcorrencia(),$objEquipe->getFuncionario(),$objEquipe->getAtivo());

            if ($stm->execute()) {
                $conn->close();
                return true;
            } else {
                $conn->close();
                return false;
            }
        } else {
            return false;
        }
    }
    
    function update($objEquipe) {
        //conectando ao banco
        $objConn = new Conexao();
        $conn = $objConn->conecta();
//        var_dump($conn);
        //criando o preparedStatment
        if ($stm = $conn->prepare($this->finalizar)) {
            
            
            $stm->bind_param("i",$objEquipe->getOcorrencia());

            if ($stm->execute()) {
                $conn->close();
                return true;
            } else {
                $conn->close();
                return false;
            }
        } else {
            return false;
        }
    }

//    function update($objDepartamento) {
//
//        $objConn = new Conexao();
//        $conn = $objConn->conecta();
//
//        if ($stm = $conn->prepare($this->update)) {
//
//            $stm->bind_param("si", $objDepartamento->getDescricao(), $objDepartamento->getId());
////            $stm->bind_param("i",);
//
//            if ($stm->execute()) {
//                $conn->close();
//                return true;
//            } else {
//                $conn->close();
//                return false;
//            }
//        }
//        return false;
//    }
//
//    function delete($id) {
//
//        $objConn = new Conexao();
//        $conn = $objConn->conecta();
//
//        if ($stm = $conn->prepare($this->delete)) {
//
//            $stm->bind_param("i", $id);
//
//            if ($stm->execute()) {
//                $conn->close();
//                return true;
//            } else {
//                $conn->close();
//                return false;
//            }
//        }
//        return false;
//    }
//
//    function findAllDepartamento() {
//
//        $objConn = new Conexao();
//        $conn = $objConn->conecta();
//        $depM = new DepartamentoModel();
//        $lista = array();
//        if ($stm = $conn->prepare($this->select)) {
//
//            $stm->execute();
//
//            //atribui o resultado encontrado as variaveis
//            $stm->bind_result($id, $descricao);
//
//
//            //para cada resultado encontrado
//            $i = 0;
//            while ($stm->fetch()) {
//                $depM = new DepartamentoModel();
//                
//                $depM->setFuncionario($id);
//                $depM->setDescricao($descricao);
//                
//                $lista[$i++] = $depM;
//            }
//
//            $conn->close();
//            return $lista;
//        }
//    }
//
//    function existe($departamento) {
//
//        $objConn = new Conexao();
//        $conn = $objConn->conecta();
//
//        if ($stm = $conn->prepare($this->select_departamento)) {
//            
//            $stm->bind_param("s", $departamento);
//            
//            $stm->execute();
//
//            while ($stm->fetch()) {
//                $conn->close();
//                return true;
//            }
//
//        }
//        
//        $conn->close();
//            return false;
//    }
    
    /**
     * 
     * @param type $funcionario
     * @return int numero da ocorrencia
     */
    function selectFuncionarioQuePossuiEquipe($funcionario) {

        $objConn = new Conexao();
        $conn = $objConn->conecta();
        
        if ($stm = $conn->prepare($this->select_equipe)) {
            
            $stm->bind_param('i', $funcionario);
            
            $stm->execute();
            
            $stm->bind_result($ocorrencia);

            while ($stm->fetch()) {
                $conn->close();
                return $ocorrencia;
            }

            
        }
        $conn->close();
        return -1;
    }
    
    
    
    function countFuncionarios($ocorrencia) {

        $objConn = new Conexao();
        $conn = $objConn->conecta();
        $tot = 0;
        if ($stm = $conn->prepare($this->count_funcionarios)) {
            
            $stm->bind_param('i', $ocorrencia);
            
            $stm->execute();
            
            $stm->bind_result($tot);
            
            while ($stm->fetch()) {
                
                return $tot;
            }

            
        }
        $conn->close();
            return $tot;
    }
    
    function removeFuncionario($ocorrencia, $funcionario){
        
        $objConn = new Conexao();
        $conn = $objConn->conecta();
//        echo $ocorrencia." ".$funcionario;
        if ($stm = $conn->prepare($this->remove_funcionario)) {
            
            $stm->bind_param('ii', $ocorrencia,$funcionario);
            
            if($stm->execute()){
                $conn->close();
                return true;
            }else{
                $conn->close();
                return false;
            }
            
        }
        $conn->close();
        return false;
    }
}

